package pruebas;

import java.util.Iterator;

import src.CargadorDeArchivo;
import src.Casamentera;
import src.CasamenteraGaleAndShapley;
import src.Persona;
import src.TablaDePreferencias;
import junit.framework.TestCase;


public class PruebaDesdeArchivo extends TestCase{

	final static String ARCHIVO = "preferencias.txt";
	private TablaDePreferencias preferenciasHombres;
	private TablaDePreferencias preferenciasMujeres;
	public void setUp() {
		CargadorDeArchivo cargador = new CargadorDeArchivo(ARCHIVO);
		 preferenciasHombres=cargador.getTablaHombres();
		 preferenciasMujeres=cargador.getTablaMujeres();
	}
	
	public void testGS() {
		casaryVerificar(new CasamenteraGaleAndShapley(this.preferenciasHombres,this.preferenciasMujeres));
	}
	
	public void testFB(){
		casaryVerificar(new CasamenteraGaleAndShapley(this.preferenciasHombres,this.preferenciasMujeres));
	}
	
	private void casaryVerificar(Casamentera casamentera){
		casamentera.casar();

		TestCase.assertTrue(casamentera.seCasaron());

		Iterator<Persona> itHombres = this.preferenciasHombres.getPersonas();
	
			
		while(itHombres.hasNext()){
			Iterator<Persona> itMujeres = this.preferenciasMujeres.getPersonas();
			Persona hombre= itHombres.next();
			while(itMujeres.hasNext()){
				Persona mujer= itMujeres.next();
				TestCase.assertTrue(hombre.esEstableCon(mujer));
				
			}
			
			
		}


	
	}

}
